var porcentajeAcumulado = 0;

$(function() {
    var textoObjetivoEspec = $( "#textoObjetivoEspec" ),
      porcentaje = $( "#porcentaje" ),
      campos = $( [] ).add( textoObjetivoEspec ).add( porcentaje ),
      advertencia = $( ".advertencia" );
 
    function actualizarAdvertencia( t ) {
      advertencia
        .text( t )
        .addClass( "ui-state-highlight" );
      setTimeout(function() {
        advertencia.removeClass( "ui-state-highlight", 1500 );
      }, 500 );
    }
 
    function verificarLongitud( texto, campo, min, max ) {
      if ( texto.val().length > max || texto.val().length < min ) {
        texto.addClass( "ui-state-error" );
        actualizarAdvertencia( "La longitud del campo " + campo + " debe estar entre " +
          min + " y " + max + " caracteres." );
        return false;
      } else {
        return true;
      }
    }
 
    function verificarExpresion( texto, expresionRegular, campo ) {
      if ( !( expresionRegular.test( texto.val() ) ) ) {
        texto.addClass( "ui-state-error" );
        actualizarAdvertencia( campo );
        return false;
      } else {
        return true;
      }
    }
	 function verificarPorcentaje( a,campo) {
      if ( (parseInt(porcentajeAcumulado)+parseInt(a.val()))>100 ) {
        a.addClass( "ui-state-error" );
        actualizarAdvertencia( campo );
        return false;
      } else {
        return true;
      }
    }
 
    $( "#nuevoObjetivo" ).dialog({
	
      autoOpen: false,
      height: 300,
      width: 350,
      modal: true,
	  
      buttons: {
        "Aceptar": function() {
          var bValid = true;
          campos.removeClass( "ui-state-error" );
 
		  bValid = bValid && verificarPorcentaje( porcentaje, "El porcentaje no debe sobrepasar el 100%" );
          bValid = bValid && verificarLongitud( textoObjetivoEspec, "descripcion", 3, 400);
          bValid = bValid && verificarLongitud( porcentaje, "porcentaje", 1, 3 );
        
          bValid = bValid && verificarExpresion( textoObjetivoEspec, /^[a-z]([0-9a-z ])+$/i, "La descripcion debe contener solo caracteres alfanumericos" );
          // From jquery.validate.js (by joern), contributed by Scott Gonzalez: http://projects.scottsplayground.com/identificacion_address_validation/
          bValid = bValid && verificarExpresion( porcentaje, /^([0-9])+$/, "El porcentaje debe contener solo numeros");
		   
		   
		  
 
          if ( bValid ) {
		 porcentajeAcumulado = parseInt(porcentajeAcumulado) + parseInt(porcentaje.val());
            $( "#users tbody" ).append( "<tr>" +
              "<td>" + textoObjetivoEspec.val() + "</td>" +
              "<td>" + porcentaje.val() + "</td>" +
            "</tr>" );
            $( this ).dialog( "close" );
          }
        },
        Cancel: function() {
          $( this ).dialog( "close" );
        }
		
      },
      close: function() {
        campos.val( "" ).removeClass( "ui-state-error" );
      }
    });
	
 
    $( "#agregar" )
      .button()
      .click(function() {
        $( "#nuevoObjetivo" ).dialog( "open" );
      });
  });